<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class stock extends CI_Controller {

	public function __construct(){
		parent::__construct();
	}

	public function index(){
		if($this->session->userdata('logged_in')){
			$this->load->model('stock_model');

			$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));

			$this->load->view('informe_stock_view', $datos);
		}else{
			redirect('', 'refresh');
		}
	}

	public function agregarStock($usu_id = NULL, $pro_id = NULL, $pro_descripcion = NULL){
		if($this->session->userdata('logged_in')){
			if($this->input->post() && isset($usu_id) && isset($pro_id) && isset($pro_descripcion)){
				$this->load->model('stock_model');
				$cantidad = $this->input->post('cantidad');

				$this->stock_model->agregarCantidadReal($usu_id, $pro_id, $cantidad);

				$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));
				$datos['error'] = 'Se agregaron '.$cantidad.' unidades de '.urldecode($pro_descripcion);
				$this->load->view('informe_stock_view', $datos);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

	public function quitarStock($usu_id = NULL, $pro_id = NULL, $pro_descripcion = NULL){
		if($this->session->userdata('logged_in')){
			if($this->input->post() && isset($usu_id) && isset($pro_id) && isset($pro_descripcion)){
				$this->load->model('stock_model');
				$cantidad = $this->input->post('cantidad');
				if($cantidad>=0 && $this->stock_model->validarQuitarStock($usu_id, $pro_id, $cantidad)){
					$this->stock_model->quitarCantidadReal($usu_id, $pro_id, $cantidad);
					$datos['error'] = 'Se quitaron '.$cantidad.' unidades de '.urldecode($pro_descripcion);
				}else{
					$datos['error'] = 'La cantidad no es válida';
				}
				$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));
				$this->load->view('informe_stock_view', $datos);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

	public function minimo($usu_id = NULL){
		if($this->session->userdata('logged_in')){
			if(isset($usu_id)){
				$this->load->model('stock_model');

				$datos['categorias'] = $this->stock_model->todasCategorias();
				$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));

				$this->load->view('stock_minimo_view', $datos);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

	public function obtenerProductos($usu_id = NULL, $cap_id = NULL){
		if($this->session->userdata('logged_in')){
			if(isset($cap_id) && isset($usu_id)){
				$this->load->model('stock_model');

				$arreglo = $this->stock_model->obtenerProductosCategoria($usu_id, $cap_id);

				echo json_encode($arreglo);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

	public function agregarStockMinimo($usu_id = NULL, $pro_id = NULL, $pro_descripcion = NULL){
		if($this->session->userdata('logged_in')){
			if($this->input->post() && isset($usu_id) && isset($pro_id) && isset($pro_descripcion)){
				$this->load->model('stock_model');
				$cantidad = $this->input->post('cantidad');

				$this->stock_model->agregarCantidadMinimo($usu_id, $pro_id, $cantidad);

				$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));
				$datos['error'] = 'Se agregaron '.$cantidad.' unidades de '.urldecode($pro_descripcion);
				$datos['categorias'] = $this->stock_model->todasCategorias();
				$this->load->view('stock_minimo_view', $datos);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

	public function quitarStockMinimo($usu_id = NULL, $pro_id = NULL, $pro_descripcion = NULL){
		if($this->session->userdata('logged_in')){
			if($this->input->post() && isset($usu_id) && isset($pro_id) && isset($pro_descripcion)){
				$this->load->model('stock_model');
				$cantidad = $this->input->post('cantidad');
				if($cantidad>=0 && $this->stock_model->validarQuitarStockMinimo($usu_id, $pro_id, $cantidad)){
					$this->stock_model->quitarCantidadMinimo($usu_id, $pro_id, $cantidad);
					$datos['error'] = 'Se quitaron '.$cantidad.' unidades de '.urldecode($pro_descripcion);
					$datos['categorias'] = $this->stock_model->todasCategorias();
				}else{
					$datos['error'] = 'La cantidad no es válida';
				}
				$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));
				$this->load->view('stock_minimo_view', $datos);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

	public function agregarProductoStock($usu_id = NULL){
		if($this->session->userdata('logged_in')){
			if($this->input->post() && isset($usu_id)){
				$this->load->model('stock_model');
				$cantidad = $this->input->post('cantidad');
				$pro_id = $this->input->post('pro_id');
				if($cantidad>=0){
					$this->stock_model->insertarProducto($usu_id, $pro_id, $cantidad);
					$datos['categorias'] = $this->stock_model->todasCategorias();
					$datos['error'] = 'La operación se realizo con exito';
				}else{
					$datos['error'] = 'La cantidad no es válida';
				}
				$datos['arregloStock'] = $this->stock_model->obtenerInformeStock($this->session->userdata('usu_id'));
				$this->load->view('stock_minimo_view', $datos);
			}else{
				redirect('stock', 'refresh');
			}
		}else{
			redirect('', 'refresh');
		}
	}

}